// API基础配置
export const API_BASE_URL = 'https://admin-sustech-v2.demotry.cn'

/**
 * 通用API请求方法
 * @param {string} endpoint - API端点
 * @param {object} options - fetch选项
 * @returns {Promise} 返回Promise对象
 */
export async function apiRequest(endpoint, options = {}) {
  const url = `${API_BASE_URL}${endpoint}`
  
  const defaultOptions = {
    headers: {
      'Content-Type': 'application/json',
    },
  }

  const config = {
    ...defaultOptions,
    ...options,
    headers: {
      ...defaultOptions.headers,
      ...options.headers,
    },
  }

  try {
    const response = await fetch(url, config)
    const data = await response.json()
    
    if (data.code === 0) {
      return data.data
    } else {
      throw new Error(data.msg || '请求失败')
    }
  } catch (error) {
    console.error('API请求错误:', error)
    throw error
  }
}

/**
 * 获取Footer数据
 * @returns {Promise} 返回Footer数据
 */
export async function getFooterData() {
  return apiRequest('/api/index/footer')
}

/**
 * 获取Home信息数据
 * @returns {Promise} 返回Home信息数据
 */
export async function getHomeInfo() {
  return apiRequest('/api/index/home_info')
}

/**
 * 获取News列表数据
 * @param {number} page - 页码，默认1
 * @param {number} pageSize - 每页数量，默认10
 * @returns {Promise} 返回News列表数据
 */
export async function getNewsList(page = 1, pageSize = 10) {
  return apiRequest(`/api/news/news_list?page=${page}&page_size=${pageSize}`)
}

/**
 * 获取News详情数据
 * @param {number} contentId - 内容ID
 * @returns {Promise} 返回News详情数据
 */
export async function getNewsDetail(contentId) {
  return apiRequest(`/api/news/news_detail?content_id=${contentId}`)
}

/**
 * 获取Recent Results列表数据
 * @param {number} page - 页码，默认1
 * @param {number} pageSize - 每页数量，默认10
 * @returns {Promise} 返回Recent Results列表数据
 */
export async function getResultList(page = 1, pageSize = 10) {
  return apiRequest(`/api/news/result_list?page=${page}&page_size=${pageSize}`)
}

/**
 * 获取Recent Results详情数据
 * @param {number} contentId - 内容ID
 * @returns {Promise} 返回Recent Results详情数据
 */
export async function getResultDetail(contentId) {
  return apiRequest(`/api/news/result_detail?content_id=${contentId}`)
}

/**
 * 获取Publications分组列表数据
 * @returns {Promise} 返回Publications分组列表数据
 */
export async function getPublicationGroupList() {
  return apiRequest('/api/publication/group_list')
}

/**
 * 获取Research列表数据
 * @returns {Promise} 返回Research列表数据
 */
export async function getResearchList() {
  return apiRequest('/api/research/list')
}

/**
 * 获取Join Us数据
 * @returns {Promise} 返回Join Us数据
 */
export async function getJoinUs() {
  return apiRequest('/api/contact/join_us')
}

/**
 * 获取Members列表数据
 * @returns {Promise} 返回Members列表数据
 */
export async function getMembersList() {
  return apiRequest('/api/members/list')
}

